// 模块：在NODE中模块分为三种：自定义模块，内置模块，第三方模块。、
// 每一个模块是一个文件，该文件可以导出（暴露）一些数据（引入一个模块，即可使用该模块导出的数据）
// 如何引入模块。
const path = require("path");// 将内置模块path暴露出的数据赋值给常量path.
// * `path.join([path1][, path2][, ...]) `:
// 用于连接路径。该方法的主要用途在于，会正确使用当前系统的路径分隔符，Unix系统是"`/`"，Windows系统是"`\`"。 (常用)
{
	// console.log(path.join());// .
	// console.log(path.join("./a"));// a
	// console.log(path.join("a"));// a
	// console.log(path.join("../a"));// ..\a
	// console.log(path.join("../a/b"));// ..\a
	
	// console.log(__dirname);// F:\Lesson06\code
	// console.log(path.join("/"));// \
	
	// console.log(path.join("F:/Lesson06/code"));
	// console.log(path.join(__dirname));// F:\Lesson06\code
	// console.log(path.join(__dirname,"a"));// F:\Lesson06\code\a
	// console.log(path.join(__dirname,"a/b"));// F:\Lesson06\code\a\b
	// console.log(path.join(__dirname,"./a/b"));// F:\Lesson06\code\a\b
	// console.log(path.join(__dirname,"../a/b"));// F:\Lesson06\a\b
	// console.log(path.join(__dirname,"../../a/b"));// F:\a\b
	// console.log(path.join(__dirname,"a","b","c"));// F:\Lesson06\code\a\b\c
	// console.log(path.join(__dirname,"a","../b","c"));// F:\Lesson06\code\b\c
}

// * `path.resolve()`：  将路径或者路径片段序列化为绝对路径  (常用)
// {
// 	// console.log(__dirname);// 文件所在的目录： F:\Lesson06\code
// 	// console.log(path.resolve());// node命令执行时的目录： F:\Lesson06\code
//
// 	// 运行命令：F:\> node .\Lesson06\code\5-内置模块.js
// 	// console.log(__dirname);// 文件所在的目录： F:\Lesson06\code
// 	// console.log(path.resolve());// node命令运行时的目录： F:\
//
// 	// console.log(path.resolve(__dirname));// 接收的是一个完整地址即会原样输出：F:\Lesson06\code
// 	console.log(path.resolve("../"));// F:\Lesson06
// 	console.log(path.resolve("../a"));// F:\Lesson06\a
// 	console.log(path.resolve("/a"));// F:\a
// 	console.log(path.resolve("/a/b"));// F:\a\b
// 	console.log(path.resolve("../a/b"));// F:\Lesson06\a\b
// }


// * `path.extname(p)`：返回路径中文件的后缀名。 (常用)
// {
// 	// 得到index.html的完整地址
// 	// console.log(path.join(__dirname,"index.html"));
// 	// console.log(path.resolve(__dirname,"index.html"));
//
// 	const htmlPath = path.join(__dirname,"index.html");
// 	// console.log(htmlPath);// F:\Lesson06\code\index.html
// 	// console.log(path.extname(htmlPath));// .html
// 	// console.log(path.extname("my.gif"));// .gif
// 	// console.log(path.extname(__dirname));//
// 	console.log(path.extname(__filename));// .js
// }

// * `path.isAbsolute(path)`: 判断参数 **path** 是否是绝对路径。
// {
// 	console.log(path.isAbsolute(__dirname));// true
// 	console.log(path.isAbsolute("./a/b"));// false
// 	console.log(path.isAbsolute("/"));// true
// 	console.log(path.isAbsolute(path.join()));// false
// 	console.log(path.isAbsolute(path.resolve()));// true
// }

// * `path.dirname(p)`：返回路径中代表文件夹的部分
{
	// console.log(path.dirname("/a/b/c/d"));// /a/b/c
	// console.log(path.dirname(__filename));// F:\Lesson06\code
}
// * `path.basename(p[, ext])`：返回路径中的最后一部分。
{
	console.log(path.basename(__filename));//5-内置模块.js
}